﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using CondominioWeb.Persistencia.NHibernate;
using CondominioWeb.Dominio;

namespace CondominioWeb.Pruebas
{
    [TestFixture]
    public class TestSituacionReservaDAO
    {
        private SituacionReservaDAO situacionReservaDao = new SituacionReservaDAO();
        [Test]
        public void TestCrear()
        {
            Situacion_Reserva SituacionReservaNuevo = new Situacion_Reserva();
            SituacionReservaNuevo.Codigo_Situacion_Reserva = 2;
            SituacionReservaNuevo.Descripcion = "Ocupado";
            SituacionReservaNuevo.Estado = "Activo";

            // 2. Llamada al método del DAO a probar
            Situacion_Reserva SituacionReservaCreado = situacionReservaDao.Crear(SituacionReservaNuevo);
            // 4. Implementar las validaciones
            Assert.NotNull(SituacionReservaCreado);
            Assert.AreEqual(SituacionReservaNuevo.Codigo_Situacion_Reserva, SituacionReservaCreado.Codigo_Situacion_Reserva);
        }

        [Test]
        public void TestModificar()
        {
            Situacion_Reserva SituacionReservaNuevo = new Situacion_Reserva();
            SituacionReservaNuevo.Codigo_Situacion_Reserva = 2;
            SituacionReservaNuevo.Descripcion = "Ocupado";
            SituacionReservaNuevo.Estado = "Activo";

            // 2. Llamada al método del DAO a probar
            Situacion_Reserva SituacionReservaCreado = situacionReservaDao.Modificar(SituacionReservaNuevo);
            // 4. Implementar las validaciones
            Assert.NotNull(SituacionReservaCreado);
            Assert.AreEqual(SituacionReservaNuevo.Codigo_Situacion_Reserva, SituacionReservaCreado.Codigo_Situacion_Reserva);
        }

        [Test]
        public void TestObtener()
        {
            int _cod_SituacionReserva;
            // 1. Instanciando el objeto TO
            // 2. Llamada al método del DAO a probar
            _cod_SituacionReserva = 1;
            Situacion_Reserva  SituacionReservaConsulta = situacionReservaDao.Obtener(_cod_SituacionReserva);

            // 4. Implementar las validaciones
            Assert.NotNull(SituacionReservaConsulta);
            Assert.AreEqual(SituacionReservaConsulta.Codigo_Situacion_Reserva, _cod_SituacionReserva);
            Assert.IsNotNull(SituacionReservaConsulta.Descripcion);
        }
        [Test]
        public void TestEliminar()
        {
            // 1. Instanciando el objeto TO
            Situacion_Reserva oSituacionReserva = new Situacion_Reserva();
            oSituacionReserva.Codigo_Situacion_Reserva = 1;
            // 2. Llamada al método del DAO a probar
            Assert.Catch<Exception>(delegate
            {
                situacionReservaDao.Eliminar(oSituacionReserva);
            });
            Assert.DoesNotThrow(delegate
            {
                situacionReservaDao.Eliminar(oSituacionReserva);
            });

            // 3. Implementar las validaciones
            Assert.NotNull(oSituacionReserva);
            Assert.NotNull(oSituacionReserva.Codigo_Situacion_Reserva);

        }


    }
}